It is not unusual for a modern computer network to contain several server machines as well as numerous client machines. The servers typically provide file access, printer access, and other services to users who are stationed at the client machines. Some large networks contain dozens of servers and hundreds of clients. The person responsible for administering the network is known as the "network administrator" or "administrator." Persons who use the network are known as "users." Administrators are also users.
A wide variety of application programs such as word processors, spreadsheets, database managers, program development tools, and the like (collectively, "applications") are typically found on one or more servers in the network. However, applications are often under-utilized. Sometimes a potential user does not know whether a particular application would be helpful because the user is unfamiliar with that application. Sometimes applications could be made available to those who would benefit from their use, but the necessary file access rights and execution environment have not been provided by the administrator. Sometimes a user who is familiar with an application does not realize that the application was recently placed on the network.
Even if a user wishes to execute a particular application and believes that the executable code for that application exists somewhere on the network, the user still must locate and access that code in order to utilize the application. Unfortunately, the executable codes for applications are often scattered amongst many servers, thereby making it difficult at times even for administrators to locate particular executable codes. The situation is much worse for users who are unfamiliar with the technical aspects of network organization and administration. Because such users are often unable to locate the desired executable codes and/or create appropriate execution environments, they are unnecessarily prevented from using helpful applications.
More experienced users often manually maintain records of the locations of certain application executables, but this approach has several drawbacks. Often, a user does not initially know where a particular executable is located. Scanning the directories of numerous servers to locate an executable is a possible approach. But scanning directories is potentially very time-consuming, particularly if it becomes necessary to attach the user's client machine to numerous servers to access their directories. Asking a network administrator where to find a particular program is also possible, but repeatedly answering such queries from many users takes significant time away from other tasks that require the administrator's attention and expertise. Keeping manual records requires maintenance each time an executable's location is changed, thereby cutting into the time the user and/or administrator could be devoting to other duties.
In addition to an executable code, other resources are typically required by an application before it can successfully execute. In some cases it is necessary to map drives, to capture printer ports, or to specify a working directory for files which will hold intermediate or final data produced by the application. Access to files or directories may require that the user have read, write, or other rights. In some network environments a particular application will run more efficiently or effectively if its execution is preceded by a set of commands found in a startup script, or if its execution is followed by a set of commands found in a shutdown script. Many applications allow or require parameters to be passed to the application's executable code on the same command line which invokes that code.
Thus, in addition to maintaining the location of the executable code, users and administrators who manually maintain records regarding applications often find it helpful or necessary to maintain additional information regarding the execution environment of each application, such as drive mappings, printer port requirements, working directory names, access rights, scripts, and command line parameters. In practice this additional information is at least as widely scattered as the executable codes and is often stored in different formats by different persons. Many users lack the expertise, the time, or both, to manually manage such information. After an application has been on the network for some time, it is not unusual for inconsistent versions of execution environment information to be found in different formats on different machines throughout the network.
Thus, it would be an advancement in the art to provide a computer-implemented method and apparatus for consistently tracking the location of application program executable codes in a network.
It would also be an advancement to provide such a method and apparatus which reduce the administrative effort associated with changes in the location of application program executable codes or changes in other information needed to execute an application.
It would be a further advancement to provide such a method and apparatus for consistently tracking and employing additional information used to execute an application program, such as drive mappings, printer port requirements, working directory names, scripts, and/or command line parameters.
Such a method and apparatus are disclosed and claimed herein.